(SW Expert Academy) 리스트, 튜플 - 6273번 6275번 6276번 6277번 6280번

1번 - 6273번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

튜플을 항목으로 갖는 리스트 객체는 [(…)] 로 표현
참고: dictionary 자료형에서는 .item() 이 key, value 쌍을 튜플로 자동으로 묶어서 반환함

score = [(90, 80), (85, 75), (90, 100)]

for idx, t in enumerate(score):
sum = t[0] + t[1]
print("{}번 학생의 총점은 {}점이고, 평균은 {}입니다.".format(idx+1, sum, sum/2))

2번 - 6275번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
str = 'Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open.'
vowels = list('aeiou')

str_list = [word for word in str if word not in vowels]

print(''.join(str_list))

3번 - 6276번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

가독성을 위해서 내포 안에서 줄을 띄워주는게 좋을 것 같다
주의할 점은 보통은 [num*i for i in range(1,10) if i%3!=0 and i%7!=0] 처럼 for문 뒤에 if 조건을 적었는데
[[...] if num%3!=0 and num%7!=0 else [] for num in range(2,10)] else문을 사용하려면 앞으로 와야한다. 아니면 syntax 에러가 뜸

times_table = [[num*i for i in range(1,10) if i%3!=0 and i%7!=0]
if num%3!=0 and num%7!=0 else [] for num in range(2,10)]

print(times_table)
File "**file_name**.py", line *
times_table = [[num*i for i in range(1,10) if i%3!=0 and i%7!=0] for num in range(2,10) if num%3!=0 and num%7!=0 else []]
^
SyntaxError: invalid syntax

4번 - 6277번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

내포 안에서 그냥 input()을 돌리면 한번만 받고 빠져나온다
총 5번을 받아야 하기 때문에 for문을 돌리는데, 여기서도 주의할 점으로 5번 반복하는 for문이 앞으로 와야한다

num = [int(x) for i in range(5) for x in input().split('\n')]
avg=0
for i in range(5):
avg += num[i]

print("입력된 값 {}의 평균은 {}입니다.".format(num, avg/5))

6번 - 6280번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
num = int(input())
factors = [n for n in range(1, num+1) if num%n==0]

print(factors)